原帖 | Jack | 2025-08-31 01:15 | 👍3 | 阅读约1
关于中断优化:
中断在系统是一个非常紧俏的资源,如果在中断中处理的时间较长,就会影响到系统的实时性并可能产生丢中断的情况。那么我们能做的就是最大限度的去优化中断的延时时间。具体的优化策略有,在上半部优化中,精简逻辑,减少不必要的局部变量(避免压栈和出栈的开销),在数据传输中,如果想要尽可能优化中断,使用全局变量来实现中断线程化是一种方案,全局变量相较于IPC消耗更低,优先使用全局变量进行通知等;在下半部优化中,将耗时的数据处理从中断中剥离出来,放在线程中去处理。(减少中断延迟的具体手段另见老师,中断的延迟处理时间要怎么)
同时系统的实时性能力是有上限的,不可能无限地响应所有请求,而中断资源比线程资源宝贵得多,所以宁可在线程中多花点时间,也要保证中断的畅通。当任务负载超过芯片处理能力时,丢中断是必然的。当系统开始丢中断时,需要使用看门狗、GPIO引脚+示波器测量等 方法来定位性能瓶颈。如果软件优化已到极限仍无法满足实时性要求,最后的手段就是升级硬件(换更强大的芯片)。
相关笔记